import brand_modelService from '@/apis/brand_model.js';
import posterService from '@/apis/poster.js';
import http from '@/utils/request.js'
import saleService from '@/apis/sale';
// components/brand-model/brand-model.js
Component({

  /**
   * 组件的属性列表
   */
  properties: {

  },

  /**
   * 组件的初始数据
   */
  data: {
    modelList: [],
    multiIndex: [0, 0],  // 当前选中的三级索引
    brands: [],           // 省份列表
    models: [],
    selectedModelId: 0,
    selectedModel: {},
  },

  /**
   * 组件的方法列表
   */
  methods: {
    initModelsData(data) {
      const rawData = data;
      const modelsMap = new Map();

      // 处理原始数据
      rawData.forEach(item => {
        // 省份处理
        if (!modelsMap.has(item.brand)) {
          modelsMap.set(item.brand, [] );
        }
        const models = modelsMap.get(item.brand);

        // 区县处理
        models.push(item.model);
      });

      // 新增名称数组处理
      this.setData({
        modelList: rawData,
        modelsMap,
        multiIndex: [0,0],
        brands: Array.from(modelsMap.keys()),
        models: Array.from(modelsMap.values())[0]
      });
    },
    bindMultiPickerColumnChange(value, column) {
      const { modelsMap, multiIndex } = this.data;
      let newIndex = [...multiIndex];
      newIndex[column] = value;
      if (column === 0) { // 省份变化
        const newModels =
          Array.from(modelsMap.values())[value];        
        this.setData({
          models: newModels,
          multiIndex: [value, 0]
        });
      } else {
        // 更新对应名称数组
        this.setData({
          multiIndex: [multiIndex[0], value]
        });
      }
      
    },
    bindMultiPickerChange(e) {
      const value = e.detail.value;
      const column = parseInt(e.currentTarget.dataset.col);
      this.bindMultiPickerColumnChange(value, column);
      const { brands, models, multiIndex, modelList } = this.data;
      const selectedModelId = modelList.filter(
        item =>item.brand == brands[multiIndex[0]] &&
          item.model == models[multiIndex[1]] 
      )[0].id;
      //触发事件
      this.triggerEvent('selectedModelIdChange', {selectedModelId});
    },
  },
  
  lifetimes: {
    attached() { // 对应页面的onLoad
      // 这里写原本在page onLoad中的初始化逻辑
      // console.log('组件被插入页面节点树时触发')
      console.log("brand-model.js 的lifetimes的attached()")
      brand_modelService.list().then(res => {
        this.initModelsData(res.data.data)
        //触发事件
        this.triggerEvent('selectedModelIdChange', {selectedModelId:res.data.data[0].id});
      })
    },
  }
})